<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">

<html>
<head>
  <meta name="generator" content=
  "HTML Tidy for Linux/x86 (vers 7 December 2008), see www.w3.org">

  <title>The CVS Repository</title>
  <meta name="GENERATOR" content=
  "Modular DocBook HTML Stylesheet Version 1.79">
  <link rel="HOME" title="Privoxy Developer Manual" href="index.html">
  <link rel="PREVIOUS" title="Introduction" href="introduction.html">
  <link rel="NEXT" title="Documentation Guidelines" href=
  "documentation.html">
  <link rel="STYLESHEET" type="text/css" href="../p_doc.css">
  <meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
  <style type="text/css">
body {
  background-color: #EEEEEE;
  color: #000000;
  }
  :link { color: #0000FF }
  :visited { color: #840084 }
  :active { color: #0000FF }
  span.c2 {font-style: italic}
  hr.c1 {text-align: left}
  </style>
</head>

<body class="SECT1">
  <div class="NAVHEADER">
    <table summary="Header navigation table" width="100%" border="0"
    cellpadding="0" cellspacing="0">
      <tr>
        <th colspan="3" align="center">Privoxy Developer Manual</th>
      </tr>

      <tr>
        <td width="10%" align="left" valign="bottom"><a href=
        "introduction.html" accesskey="P">Prev</a></td>

        <td width="80%" align="center" valign="bottom"></td>

        <td width="10%" align="right" valign="bottom"><a href=
        "documentation.html" accesskey="N">Next</a></td>
      </tr>
    </table>
    <hr class="c1" width="100%">
  </div>

  <div class="SECT1">
    <h1 class="SECT1"><a name="CVS" id="CVS">2. The CVS Repository</a></h1>

    <p>If you become part of the active development team, you will eventually
    need write access to our holy grail, the CVS repository. One of the team
    members will need to set this up for you. Please read this chapter
    completely before accessing via CVS.</p>

    <div class="SECT2">
      <h2 class="SECT2"><a name="CVSACCESS" id="CVSACCESS">2.1. Access to
      CVS</a></h2>

      <p>The project's CVS repository is hosted on <a href=
      "http://sourceforge.net/" target="_top">SourceForge.</a> Please refer
      to the chapters 6 and 7 in <a href=
      "http://sourceforge.net/docman/?group_id=1" target="_top">SF's site
      documentation</a> for the technical access details for your operating
      system. For historical reasons, the CVS server is called <tt class=
      "LITERAL">ijbswa.cvs.sourceforge.net</tt>, the repository is called
      <tt class="LITERAL">ijbswa</tt>, and the source tree module is called
      <tt class="LITERAL">current</tt>.</p>
    </div>

    <div class="SECT2">
      <h2 class="SECT2"><a name="CVSBRANCHES" id="CVSBRANCHES">2.2.
      Branches</a></h2>

      <p>Within the CVS repository, there are modules and branches. As
      mentioned, the sources are in the <tt class="LITERAL">current</tt>
      <span class="QUOTE">"module"</span>. Other modules are present for
      platform specific issues. There is a webview of the CVS hierarchy at
      <a href="http://ijbswa.cvs.sourceforge.net/ijbswa/" target=
      "_top">http://ijbswa.cvs.sourceforge.net/ijbswa/</a>, which might help
      with visualizing how these pieces fit together.</p>

      <p>Branches are used to fork a sub-development path from the main
      trunk. Within the <tt class="LITERAL">current</tt> module where the
      sources are, there is always at least one <span class=
      "QUOTE">"branch"</span> from the main trunk devoted to a stable release
      series. The main trunk is where active development takes place for the
      next stable series (e.g. 3.2.x). So just prior to each stable series
      (e.g. 3.0.x), a branch is created just for stable series releases (e.g.
      3.0.0 -&gt; 3.0.1 -&gt; 3.0.2, etc). Once the initial stable release of
      any stable branch has taken place, this branch is <span class=
      "emphasis EMPHASIS c2">only used for bugfixes</span>, which have had
      prior testing before being committed to CVS. (See <a href=
      "newrelease.html#VERSIONNUMBERS">Version Numbers</a> below for details
      on versioning.)</p>

      <p>At one time there were two distinct branches: stable and unstable.
      The more drastic changes were to be in the unstable branch. These
      branches have now been merged to minimize time and effort of
      maintaining two branches.</p>
    </div>

    <div class="SECT2">
      <h2 class="SECT2"><a name="CVSCOMMIT" id="CVSCOMMIT">2.3. CVS Commit
      Guidelines</a></h2>

      <p>The source tree is the heart of every software project. Every effort
      must be made to ensure that it is readable, compilable and consistent
      at all times. There are differing guidelines for the stable branch and
      the main development trunk, and we ask anyone with CVS access to
      strictly adhere to the following guidelines:</p>

      <p>Basic Guidelines, for all branches:</p>

      <ul>
        <li>
          <p>Please don't commit even a small change without testing it
          thoroughly first. When we're close to a public release, ask a
          fellow developer to review your changes.</p>
        </li>

        <li>
          <p>Your commit message should give a concise overview of
          <span class="emphasis EMPHASIS c2">what you changed</span> (no big
          details) and <span class="emphasis EMPHASIS c2">why you changed
          it</span> Just check previous messages for good examples.</p>
        </li>

        <li>
          <p>Don't use the same message on multiple files, unless it equally
          applies to all those files.</p>
        </li>

        <li>
          <p>If your changes span multiple files, and the code won't
          recompile unless all changes are committed (e.g. when changing the
          signature of a function), then commit all files one after another,
          without long delays in between. If necessary, prepare the commit
          messages in advance.</p>
        </li>

        <li>
          <p>Before changing things on CVS, make sure that your changes are
          in line with the team's general consensus on what should be
          done.</p>
        </li>

        <li>
          <p>Note that near a major public release, we get more cautious.
          There is always the possibility to submit a patch to the <a href=
          "http://sourceforge.net/tracker/?atid=311118&amp;group_id=11118&amp;func=browse"
          target="_top">patch tracker</a> instead.</p>
        </li>
      </ul>
    </div>
  </div>

  <div class="NAVFOOTER">
    <hr class="c1" width="100%">

    <table summary="Footer navigation table" width="100%" border="0"
    cellpadding="0" cellspacing="0">
      <tr>
        <td width="33%" align="left" valign="top"><a href="introduction.html"
        accesskey="P">Prev</a></td>

        <td width="34%" align="center" valign="top"><a href="index.html"
        accesskey="H">Home</a></td>

        <td width="33%" align="right" valign="top"><a href=
        "documentation.html" accesskey="N">Next</a></td>
      </tr>

      <tr>
        <td width="33%" align="left" valign="top">Introduction</td>

        <td width="34%" align="center" valign="top">&nbsp;</td>

        <td width="33%" align="right" valign="top">Documentation
        Guidelines</td>
      </tr>
    </table>
  </div>
</body>
</html>
